Function at 0x581790
Capabilities:
Check http status code
Encode data using base64
Inspect section memory permissions
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x45c
mov eax, dword [esp + 0x464]
push esi
mov esi, edx
xor edx, edx
cmp eax, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 4], 3
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], edx
jne 0x5817fb
mov eax, dword [esp + 0x464]
cmp eax, edx
je 0x5817ef
mov dword [eax], 0x63
xor eax, eax
pop esi
add esp, 0x45c
ret 0x10
mov dword [eax], edx
mov eax, dword [esp + 0x464]
cmp eax, edx
je 0x58180a
mov dword [eax], edx
mov eax, dword [esp + 0x46c]
cmp eax, edx
push ebx
push ebp
push edi
jne 0x581822
mov ecx, 0x10
jmp 0x5822af
test esi, 0x800
mov dword [eax], edx
je 0x581836
mov ecx, 0x20
jmp 0x5822af
test esi, 0xfffb8580
je 0x581848
mov ecx, 0x11
jmp 0x5822af
mov ebx, dword [esp + 0x47c]
cmp ebx, edx
jne 0x58185f
mov ebx, 0x5b00b0
mov dword [esp + 0x47c], ebx
lea eax, [ebx + 0x100]
lea edx, [ebx + 0x200]
lea ebp, [ebx + 0x340]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
movzx edi, byte [ecx]
test edi, edi
mov esi, ecx
mov dword [esp + 0x14], esi
mov ecx, 0x4000
je 0x582313
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x5818db
test dword [esp + 0x20], ecx
je 0x5818ba
add dword [esp + 0x10], 6
cmp edi, 0x5c
jne case.0x581951.37
cmp byte [esi + 1], 0x45
jne case.0x581951.37
mov dword [esp + 0x2c], 0
inc esi
jmp 0x581994
test byte [esp + 0x20], 8
je 0x581908
test byte [edi + ebp], 1
jne 0x581994
cmp edi, 0x23
jne 0x581908
movzx eax, byte [esi + 1]
inc esi
test eax, eax
je 0x582313
cmp eax, 0xa
jne 0x5818f1
jmp 0x581994
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
inc edx
test ecx, eax
mov dword [esp + 0x4c], edx
je 0x58193e
cmp edi, 0x2a
je 0x58193e
cmp edi, 0x2b
je 0x58193e
cmp edi, 0x3f
je 0x58193e
cmp edi, 0x7b
jne 0x581939
lea eax, [esi + 1]
call fcn.0057ead0
test eax, eax
jne 0x58193e
add dword [esp + 0x10], 6
add edi, 0xffffffdc
cmp edi, 0x58
ja case.0x581951.37
movzx eax, byte [edi + 0x5825cc]
jmp dword [eax*4 + 0x5825a8]
mov ecx, dword [esp + 0x28]
push 0
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
call fcn.0057e7f0
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x58229a
test eax, eax
mov edx, 1
mov dword [esp + 0x48], edx
jl 0x5819ba
add dword [esp + 0x10], 2
mov esi, dword [esp + 0x14]
movzx edi, byte [esi + 1]
mov ebx, dword [esp + 0x47c]
inc esi
test edi, edi
mov dword [esp + 0x14], esi
mov ecx, 0x4000
je 0x582313
mov ebp, dword [esp + 0x5c]
jmp 0x5818a7
mov ecx, eax
neg ecx
cmp ecx, 0x13
jne 0x5819c9
mov dword [esp + 0x2c], edx
jmp 0x581990
cmp ecx, 0xf
je 0x582295
cmp ecx, 0xd
je 0x582295
cmp ecx, 0xe
je 0x582295
mov esi, dword [esp + 0x10]
inc esi
cmp eax, 0xffffffec
mov dword [esp + 0x10], esi
jg 0x581990
mov ecx, 0xffffffec
sub ecx, eax
cmp ecx, 0x20
mov eax, edx
jge 0x581a02
shl eax, cl
mov edx, dword [esp + 0x78]
or edx, eax
cmp ecx, dword [esp + 0x74]
mov dword [esp + 0x78], edx
jle 0x581a16
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov al, byte [esi + 1]
add ecx, 2
cmp al, 0x7b
mov dword [esp + 0x10], ecx
jne 0x581994
lea ebx, [esi + 2]
mov eax, ebx
call fcn.0057ead0
test eax, eax
je 0x581994
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
lea edi, [esp + 0x20]
mov eax, ebx
call fcn.0057eb60
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, eax
jne 0x58229e
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x581a97
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x581aa3
cmp eax, 0xffffffff
je 0x581aa3
mov eax, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x10], eax
mov al, byte [esi + 1]
cmp al, 0x3f
jne 0x581994
inc esi
jmp 0x581994
cmp eax, 1
jne 0x581a7b
cmp dword [esp + 0x1c], 0xffffffff
jne 0x581a7b
mov eax, dword [esp + 0x10]
inc eax
jmp 0x581a82
inc dword [esp + 0x10]
mov dword [esp + 0x48], 1
jmp 0x581994
inc dword [esp + 0x10]
jmp 0x581b59
lea ebx, [esi + 1]
mov eax, ebx
call fcn.0057ead0
test eax, eax
je case.0x581951.37
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edi, [esp + 0x20]
mov eax, ebx
call fcn.0057eb60
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, eax
jne 0x58229e
mov eax, dword [esp + 0x24]
test eax, eax
mov ecx, dword [esp + 0x1c]
jne 0x581b23
cmp ecx, 1
je 0x581b31
cmp ecx, 0xffffffff
je 0x581b31
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
sub edx, edi
test eax, eax
jle 0x581b3f
lea edx, [edx + edi + 3]
jmp 0x581b3f
cmp eax, 1
jne 0x581b0f
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
jne 0x581b37
inc dword [esp + 0x10]
jmp 0x581b52
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
xor eax, eax
test ecx, ecx
setg al
lea eax, [eax + eax + 1]
add eax, edi
add edx, eax
mov dword [esp + 0x10], edx
cmp byte [esi + 1], 0x3f
jne 0x581b59
inc esi
cmp byte [esi + 1], 0x2b
jne 0x581994
mov eax, dword [esp + 0x10]
inc esi
add eax, 6
mov dword [esp + 0x10], eax
jmp 0x581994
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea eax, [ecx + edx + 3]
mov dword [esp + 0x10], eax
jmp 0x581994
mov al, byte [esi + 1]
inc esi
cmp al, 0x5e
mov dword [esp + 0x14], esi
jne 0x581ba1
inc esi
mov ebp, 0xa
mov dword [esp + 0x14], esi
jmp 0x581ba3
xor ebp, ebp
mov al, byte [esi]
test al, al
je 0x5822e2
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x581bd5
cmp al, 0x5c
jne 0x581d1a
cmp byte [esi + 1], 0x45
jne 0x581d1a
mov dword [esp + 0x2c], 0
inc esi
jmp 0x581c7e
cmp al, 0x5c
jne 0x581cf2
mov ecx, dword [esp + 0x28]
push 1
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
call fcn.0057e7f0
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov edi, eax
jne 0x58229a
neg eax
cmp eax, 4
jne 0x581cbd
mov edi, 8
mov esi, dword [esp + 0x14]
mov al, byte [esi + 1]
inc ebp
cmp al, 0x2d
jne 0x581c7e
mov al, byte [esi + 2]
mov ebx, esi
add esi, 2
cmp al, 0x5c
jne 0x581d31
mov eax, dword [esp + 0x28]
push 1
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], esi
call fcn.0057e7f0
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x58229a
mov esi, dword [esp + 0x14]
mov ecx, eax
neg ecx
cmp ecx, 4
jne 0x581d22
mov eax, 8
cmp eax, edi
mov ebp, 0xa
jl 0x5822db
mov al, byte [esi + 1]
inc esi
test al, al
mov dword [esp + 0x14], esi
je 0x5822e2
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x581bb5
cmp al, 0x5d
jne 0x581bb1
test al, al
je 0x5822e2
cmp ebp, 1
jne 0x581d4b
add dword [esp + 0x10], 3
jmp 0x581994
cmp eax, 0xf
jne 0x581ccc
mov edi, 0x58
jmp 0x581c15
cmp eax, 0x13
jne 0x581cdf
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], 1
jmp 0x581c7e
test edi, edi
jge 0x581c15
mov esi, dword [esp + 0x14]
mov ebp, 0xa
jmp 0x581c7e
cmp al, 0x5b
jne 0x581d1a
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x18]
push edx
mov eax, esi
call fcn.0057f0d0
test eax, eax
mov esi, dword [esp + 0x14]
je 0x581d1a
inc esi
mov ebp, 0xa
jmp 0x581c7e
movzx edi, byte [esi]
jmp 0x581c19
cmp ecx, 0xf
jne 0x581d3c
mov eax, 0x58
jmp 0x581c71
test al, al
je 0x581d44
cmp al, 0x5d
je 0x581d44
movzx eax, byte [esi]
test eax, eax
jge 0x581c71
mov esi, ebx
jmp 0x581c7e
mov ecx, dword [esp + 0x10]
mov al, byte [esi + 1]
add ecx, 0x21
cmp al, 0x7b
mov dword [esp + 0x10], ecx
jne 0x581994
lea ebx, [esi + 2]
mov eax, ebx
call fcn.0057ead0
test eax, eax
je 0x581994
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edi, [esp + 0x20]
mov eax, ebx
call fcn.0057eb60
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, eax
jne 0x58229e
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x581dd3
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x581ddf
cmp eax, 0xffffffff
je 0x581ddf
mov eax, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x10], eax
mov al, byte [esi + 1]
cmp al, 0x2b
jne 0x581a89
mov eax, dword [esp + 0x10]
inc esi
add eax, 6
mov dword [esp + 0x10], eax
jmp 0x581994
cmp eax, 1
jne 0x581dac
cmp dword [esp + 0x1c], 0xffffffff
jne 0x581dac
mov eax, dword [esp + 0x10]
inc eax
jmp 0x581db3
mov al, byte [esi + 1]
xor edi, edi
cmp al, 0x3f
mov ebx, 3
jne 0x5820fa
movzx eax, byte [esi + 2]
lea ecx, [eax - 0x21]
cmp ecx, 0x31
ja case.0x581e0f.34
movzx edx, byte [ecx + 0x58264c]
jmp dword [edx*4 + 0x582628]
mov al, byte [esi + 3]
add esi, 3
test al, al
je 0x581e2c
cmp al, 0x29
je 0x581e36
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x581e20
mov ecx, 0x12
jmp 0x58229e
cmp byte [esi], 0
je 0x581e2c
jmp 0x581994
add esi, 2
jmp 0x58211f
inc esi
add esi, 2
cmp eax, 0x52
je 0x581e61
movzx eax, byte [esi + 1]
mov cl, byte [eax + 0x5affb0]
inc esi
test cl, 4
jne 0x581e51
cmp byte [esi], 0x29
jne 0x5822e9
mov edx, dword [esp + 0x10]
mov al, byte [esi + 1]
add edx, 9
cmp al, 0x2b
mov dword [esp + 0x10], edx
je 0x581e8c
cmp al, 0x2a
je 0x581e8c
cmp al, 0x3f
je 0x581e8c
cmp al, 0x7b
jne 0x581994
add dword [esp + 0x10], 6
mov ebp, 0xb
jmp 0x58218b
add esi, 2
mov edi, edi
movzx ecx, byte [esi + 1]
mov al, byte [ecx + 0x5affb0]
inc esi
test al, 4
jne 0x581ea0
cmp byte [esi], 0x29
jne 0x5822f0
add dword [esp + 0x10], 6
jmp 0x581994
mov al, byte [esi + 3]
add esi, 3
cmp al, 0x3c
jne 0x581f14
movzx edx, byte [esi + 1]
mov al, byte [edx + ebp]
inc esi
test al, 0x10
mov ecx, esi
je 0x581eed
lea ebx, [ebx]
movzx eax, byte [esi + 1]
mov dl, byte [eax + ebp]
inc esi
test dl, 0x10
jne 0x581ee0
cmp byte [esi], 0x3e
jne 0x581f3a
mov ebp, dword [esp + 0x3c]
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x38]
inc ebp
cmp eax, ecx
mov dword [esp + 0x3c], ebp
jle 0x58210c
mov dword [esp + 0x38], eax
jmp 0x58210c
cmp al, 0x3d
je 0x581f20
cmp al, 0x3e
jne 0x5822f7
add dword [esp + 0x10], 6
movzx ecx, byte [esi + 1]
mov al, byte [ecx + ebp]
inc esi
test al, 0x10
jne 0x581f25
cmp byte [esi], 0x29
je 0x58211f
mov ecx, 0x2a
jmp 0x58229e
mov edi, 3
mov al, byte [esi + edi]
add esi, edi
cmp al, 0x3d
je 0x581f5a
cmp al, 0x21
jne 0x5822fe
add dword [esp + 0x10], edi
jmp 0x58211f
mov al, byte [esi + 3]
cmp al, 0x52
jne 0x581f83
cmp byte [esi + 4], 0x29
jne 0x581f83
mov eax, dword [esp + 0x10]
add esi, 4
add eax, 3
mov dword [esp + 0x10], eax
jmp 0x58211f
movzx edx, al
test byte [edx + 0x5affb0], 4
je 0x581fd2
movzx eax, byte [esi + 4]
mov edx, dword [esp + 0x10]
mov cl, byte [eax + 0x5affb0]
add esi, 4
add edx, 3
test cl, 4
mov dword [esp + 0x10], edx
je 0x581fbf
lea esp, [esp]
movzx ecx, byte [esi + 1]
mov al, byte [ecx + 0x5affb0]
inc esi
test al, 4
jne 0x581fb0
cmp byte [esi], 0x29
je 0x58211f
mov ecx, 0x1a
jmp 0x58229e
mov al, byte [esi + 3]
inc esi
cmp al, 0x3f
jne 0x581ff5
mov al, byte [esi + 3]
cmp al, 0x3d
je 0x58211f
cmp al, 0x21
je 0x58211f
cmp al, 0x3c
je 0x58211f
add esi, 2
mov ecx, 0x1c
jmp 0x58229e
xor ebp, ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x14], edi
lea eax, [esp + 0x14]
add esi, 2
movzx edx, byte [esi]
lea ecx, [edx - 0x29]
cmp ecx, 0x4f
ja case.0x582029.42
movzx ecx, byte [ecx + 0x5826a8]
jmp dword [ecx*4 + 0x582680]
or dword [eax], 1
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
or dword [eax], 2
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
or dword [eax], 4
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
or dword [eax], 8
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
or dword [eax], 0x40
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
or dword [eax], 0x200
mov ebp, dword [esp + 0x34]
inc esi
jmp 0x582013
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x34]
inc esi
jmp 0x582013
mov eax, dword [esp + 0x4c]
test eax, eax
jne case.0x582029.58
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x20]
not ebp
and eax, ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
xor ebp, ebp
add eax, 2
mov dword [esp + 0x14], ebp
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, ebp
or eax, dword [esp + 0x14]
test al, 7
je 0x5820d1
mov edi, dword [esp + 0x10]
add edi, 4
test al, 1
mov dword [esp + 0x10], edi
mov edi, 2
je 0x5820d1
or dword [esp + 0x20], 0x8000000
cmp edx, 0x29
jne 0x58211f
cmp edi, 2
jne 0x581994
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5820f0
cmp eax, 3
jne 0x581994
add dword [esp + 0x30], 2
jmp 0x581994
mov ecx, dword [esp + 0x20]
shr ecx, 0xc
not ecx
and ecx, 1
mov dword [esp + 0x34], ecx
je 0x58211f
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 0x64
mov dword [esp + 0x28], eax
jle 0x58211f
mov ebx, 6
mov eax, dword [esp + 0x40]
cmp eax, 0xc8
jae 0x58230c
mov ecx, dword [esp + 0x10]
mov dl, byte [esp + 0x30]
mov dword [esp + eax*4 + 0x14c], ecx
mov byte [esp + eax + 0x84], dl
inc eax
add ecx, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], ecx
jmp 0x581994
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
add ecx, 3
test eax, eax
mov dword [esp + 0x10], ecx
jbe 0x582189
dec eax
mov ebp, ecx
mov ecx, dword [esp + eax*4 + 0x14c]
mov dword [esp + 0x40], eax
movzx eax, byte [esp + eax + 0x84]
sub ebp, ecx
mov dword [esp + 0x30], eax
jmp 0x58218b
xor ebp, ebp
movzx eax, byte [esi + 1]
cmp eax, 0x7b
jne 0x5821fa
lea ebx, [esi + 2]
mov eax, ebx
call fcn.0057ead0
test eax, eax
je 0x582272
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
lea edi, [esp + 0x20]
mov eax, ebx
call fcn.0057eb60
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, eax
jne 0x58229e
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov eax, dword [esp + 0x1c]
jne 0x582227
mov edx, dword [esp + 0x10]
inc edx
test eax, eax
mov dword [esp + 0x10], edx
jle 0x581b59
add ebp, 7
dec eax
imul ebp, eax
mov eax, edx
add eax, ebp
mov dword [esp + 0x10], eax
jmp 0x581b59
cmp eax, 0x2a
jne 0x582211
or eax, 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], eax
inc esi
jmp 0x5821d5
cmp eax, 0x2b
jne 0x582256
or eax, 0xffffffff
mov ecx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], eax
inc esi
mov edi, dword [esp + 0x10]
lea edx, [ecx - 1]
imul edx, ebp
add edi, edx
cmp eax, ecx
mov dword [esp + 0x10], edi
jle 0x581b59
sub eax, ecx
add ebp, 7
imul eax, ebp
mov ecx, edi
lea edx, [ecx + eax - 6]
mov dword [esp + 0x10], edx
jmp 0x581b59
cmp eax, 0x3f
jne 0x582272
mov eax, 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], eax
inc esi
jmp 0x5821d5
mov ecx, 1
mov eax, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], eax
jmp 0x582227
add dword [esp + 0x10], 2
mov dword [esp + 0x48], 1
jmp 0x581994
mov ecx, 0x2d
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x478]
sub esi, eax
mov dword [edx], esi
xor edx, edx
mov eax, dword [ecx*4 + 0x5c0988]
mov esi, dword [esp + 0x474]
mov dword [esi], eax
mov eax, dword [esp + 0x470]
cmp eax, edx
je 0x5822cc
mov dword [eax], ecx
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x45c
ret 0x10
mov ecx, 8
jmp 0x58229e
mov ecx, 6
jmp 0x58229e
mov ecx, 0x1d
jmp 0x58229e
mov ecx, 0x27
jmp 0x58229e
mov ecx, 0x29
jmp 0x58229e
mov ecx, 0x18
jmp 0x58229e
mov ecx, 0xc
jmp 0x58229e
mov ecx, 0x13
jmp 0x58229e
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 4
test ecx, eax
mov dword [esp + 0x10], edx
je 0x58232f
mov eax, edx
add eax, 6
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x10000
jle 0x582343
mov ecx, 0x14
jmp 0x5822ad
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
add esi, 3
mov eax, esi
imul eax, dword [esp + 0x3c]
lea ebp, [eax + ecx + 0x28]
push ebp
call dword [0x5c0a48]
mov edi, eax
add esp, 4
xor edx, edx
test edi, edi
jne 0x582375
mov ecx, 0x15
jmp 0x5822af
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
add eax, 3
mov word [edi + 0x1a], ax
mov ax, word [esp + 0x3c]
mov word [edi + 0x1c], ax
xor eax, eax
cmp ebx, 0x5b00b0
sete al
mov dword [edi + 0xc], edx
mov word [edi + 0x1e], dx
mov dword [edi + 0x24], edx
mov dword [edi + 4], ebp
mov word [edi + 0x18], 0x28
mov dword [edi], 0x50435245
dec eax
and eax, ebx
mov dword [edi + 0x20], eax
mov dword [edi + 8], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], esi
movzx eax, word [edi + 0x18]
add eax, edi
mov dword [esp + 0x68], eax
movzx ebp, word [edi + 0x1c]
movzx esi, word [edi + 0x1a]
imul ebp, esi
add ebp, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x64], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x50]
push eax
push edx
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
lea eax, [esp + 0x48]
push eax
push edx
push edx
mov dword [esp + 0x78], ebp
mov byte [ebp], 0x50
mov dword [esp + 0x40], edx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x4c]
mov edx, ecx
push eax
and edx, 7
mov dword [esp + 0x5c], ebp
call fcn.00581270
mov cx, word [esp + 0x28]
mov word [edi + 0x10], cx
mov dx, word [esp + 0x74]
mov word [edi + 0x12], dx
mov eax, dword [esp + 0x80]
test eax, eax
je 0x582457
or dword [edi + 8], 0x4000000
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x14]
jne 0x582470
cmp byte [esi], 0
je 0x582470
mov dword [esp + 0x18], 0x16
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov byte [eax], 0
inc eax
sub eax, ebp
cmp eax, ecx
jle 0x58248a
mov dword [esp + 0x18], 0x17
mov ax, word [edi + 0x12]
cmp ax, word [edi + 0x10]
jbe 0x5824af
push edi
mov dword [esp + 0x1c], 0xf
call dword [0x5c0a4c]
mov ecx, dword [esp + 0x1c]
add esp, 4
jmp 0x58229e
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5824ca
push edi
call dword [0x5c0a4c]
mov ecx, dword [esp + 0x1c]
add esp, 4
jmp 0x58229e
mov eax, dword [esp + 0x20]
test al, 0x10
jne 0x582557
mov ecx, dword [esp + 0x78]
push ecx
push 0
lea edx, [esp + 0x4c]
mov ecx, ebp
mov dword [esp + 0x4c], eax
call fcn.005814d0
test eax, eax
je 0x5824f8
mov eax, dword [edi + 8]
or eax, 0x10
jmp 0x582554
mov eax, dword [esp + 0x3c]
test eax, eax
jge 0x582511
push 0
lea edx, [esp + 0x48]
mov ecx, ebp
call fcn.00581680
test eax, eax
jl 0x58253a
mov ecx, eax
and ecx, 0xff
test ah, 1
je 0x58252c
mov edx, dword [esp + 0x54]
movzx edx, byte [ecx + edx]
cmp edx, ecx
jne 0x58252c
mov eax, ecx
mov word [edi + 0x14], ax
mov eax, dword [edi + 8]
or eax, 0x40000000
jmp 0x582554
mov eax, dword [esp + 0x78]
push eax
xor edx, edx
mov ecx, ebp
call fcn.005815b0
test eax, eax
je 0x582557
mov eax, dword [edi + 8]
or eax, 0x10000000
mov dword [edi + 8], eax
mov eax, dword [esp + 0x38]
test eax, eax
jl 0x582597
mov edx, dword [edi + 8]
test dl, 0x10
je 0x58256c
test ah, 2
je 0x582597
mov ecx, eax
and ecx, 0xff
test ah, 1
je 0x58258a
mov esi, dword [esp + 0x54]
movzx esi, byte [ecx + esi]
cmp esi, ecx
jne 0x58258a
and eax, 0xfffffeff
or edx, 0x20000000
mov word [edi + 0x16], ax
mov dword [edi + 8], edx
mov eax, edi
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x45c
ret 0x10