Function at 0x41227d
Capabilities:
Check http status code
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
mov eax, dword [ebp + 0x14]
or dword [ebp - 0x38], 0xffffffff
xor edx, edx
push ebx
push esi
cmp eax, edx
push edi
mov dword [ebp - 4], 3
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x44], edx
jne 0x4122cb
mov eax, dword [ebp + 0x10]
cmp eax, edx
je 0x412e93
mov dword [eax], 0x63
jmp 0x412e93
mov dword [eax], edx
mov eax, dword [ebp + 0x10]
cmp eax, edx
je 0x4122d6
mov dword [eax], edx
mov eax, dword [ebp + 0x18]
cmp eax, edx
jne 0x4122e1
push 0x10
jmp 0x4122f8
test byte [ebp + 0xd], 8
mov dword [eax], edx
je 0x4122ed
push 0x20
jmp 0x4122f8
test dword [ebp + 0xc], 0xfffb8580
je 0x4122fe
push 0x11
pop ecx
jmp 0x412e7e
mov eax, dword [ebp + 0x1c]
cmp eax, edx
jne 0x41230d
mov eax, 0x4fe140
mov dword [ebp + 0x1c], eax
lea ecx, [eax + 0x100]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
lea ecx, [eax + 0x200]
lea ebx, [eax + 0x340]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 8], eax
movzx esi, byte [eax]
cmp esi, edx
je 0x412d14
jmp 0x412347
mov ebx, dword [ebp - 0x74]
cmp dword [ebp - 0x20], 0
push 2
pop edi
je 0x412363
test byte [ebp + 0xd], 0x40
je 0x4128fd
add dword [ebp - 4], 6
jmp 0x4128fd
test byte [ebp + 0xc], 8
je 0x4123a4
test byte [esi + ebx], 1
jne 0x4129ea
cmp esi, 0x23
jne 0x4123a4
inc eax
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x412d14
cmp ecx, 0xa
je 0x412397
inc eax
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test ecx, ecx
jne 0x412387
test ecx, ecx
je 0x412d14
jmp 0x4129ea
inc dword [ebp - 0x38]
test byte [ebp + 0xd], 0x40
je 0x4123df
cmp esi, 0x2a
je 0x4123df
cmp esi, 0x2b
je 0x4123df
cmp esi, 0x3f
je 0x4128b1
cmp esi, 0x7b
jne 0x4123db
inc eax
push eax
call fcn.00413182
test eax, eax
pop ecx
jne 0x4128b9
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 8]
add dword [ebp - 4], 6
cmp esi, 0x3f
jg 0x4128bc
je 0x4128b1
cmp esi, 0x24
je 0x4129ae
cmp esi, 0x28
je 0x412454
cmp esi, 0x29
je 0x412424
jle 0x412415
cmp esi, 0x2b
jle 0x4128b1
cmp esi, 0x2e
je 0x4129ae
add dword [ebp - 4], edi
mov dword [ebp - 0x24], 1
jmp 0x4129ea
mov ecx, dword [ebp - 0x44]
add dword [ebp - 4], 3
test ecx, ecx
jbe 0x41244d
mov esi, dword [ebp - 4]
dec ecx
mov dword [ebp - 0x44], ecx
sub esi, dword [ebp + ecx*4 - 0x46c]
movzx ecx, byte [ebp + ecx - 0x14c]
mov dword [ebp - 0x1c], ecx
jmp 0x412640
xor esi, esi
jmp 0x412640
and dword [ebp - 0x48], 0
cmp byte [eax + 1], 0x3f
lea edx, [eax + 1]
mov dword [ebp - 0x4c], 3
jne 0x412859
movzx ecx, byte [eax + 2]
lea esi, [eax + 2]
cmp ecx, 0x3c
jg 0x4125c8
je 0x4125a5
cmp ecx, 0x21
je 0x4127b6
cmp ecx, 0x23
je 0x412583
cmp ecx, 0x28
je 0x4124ff
cmp ecx, 0x2f
jle 0x4124b0
cmp ecx, 0x39
jle 0x4125f7
cmp ecx, 0x3a
je 0x4127b6
xor ebx, ebx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov eax, esi
mov dword [ebp - 8], eax
movzx edx, byte [eax]
cmp edx, 0x58
jg 0x4127c7
je 0x4127c2
cmp edx, 0x29
je 0x4127f6
cmp edx, 0x2d
je 0x4127bd
cmp edx, 0x3a
je 0x412818
cmp edx, 0x55
jne 0x412cf8
or byte [ecx + 1], 2
jmp 0x4127f0
mov bl, byte [eax + 3]
cmp bl, 0x52
jne 0x41251b
cmp byte [eax + 4], 0x29
lea ecx, [eax + 4]
jne 0x41251b
add dword [ebp - 4], 3
mov eax, ecx
jmp 0x412879
movzx ecx, bl
test byte [ecx + 0x4fe708], 4
je 0x412551
add eax, 4
add dword [ebp - 4], 3
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test byte [ecx + 0x4fe708], 4
je 0x412543
inc eax
mov dword [ebp - 8], eax
jmp 0x412531
cmp byte [eax], 0x29
jne 0x412cd6
jmp 0x412879
mov eax, edx
mov dword [ebp - 8], eax
cmp byte [eax + 2], 0x3f
jne 0x412cda
mov cl, byte [eax + 3]
cmp cl, 0x3d
je 0x412879
cmp cl, 0x21
je 0x412879
cmp cl, 0x3c
jne 0x412cda
jmp 0x412879
add eax, 3
mov dword [ebp - 8], eax
mov cl, byte [eax]
test cl, cl
je 0x412597
cmp cl, 0x29
je 0x412597
inc eax
jmp 0x412586
cmp byte [eax], 0
je 0x412ce0
jmp 0x4129ea
push 3
pop edx
add eax, edx
mov dword [ebp - 8], eax
mov cl, byte [eax]
cmp cl, 0x3d
je 0x4125bd
cmp cl, 0x21
jne 0x412ce4
add dword [ebp - 4], edx
mov dword [ebp - 0x48], edx
jmp 0x412879
cmp ecx, 0x3d
jl 0x4124b0
cmp ecx, 0x3e
jle 0x4127b6
cmp ecx, 0x43
je 0x412793
cmp ecx, 0x50
je 0x412723
cmp ecx, 0x52
jne 0x4124b0
mov eax, edx
add eax, edi
cmp ecx, 0x52
mov dword [ebp - 8], eax
je 0x412611
inc eax
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test byte [ecx + 0x4fe708], 4
jne 0x412601
cmp byte [eax], 0x29
jne 0x412ce8
mov cl, byte [eax + 1]
add dword [ebp - 4], 9
cmp cl, 0x2b
je 0x412639
cmp cl, 0x2a
je 0x412639
cmp cl, 0x3f
je 0x412639
cmp cl, 0x7b
jne 0x4129ea
add dword [ebp - 4], 6
push 0xb
pop esi
movzx ecx, byte [eax + 1]
lea edx, [eax + 1]
cmp ecx, 0x7b
jne 0x41268c
add eax, 2
push eax
call fcn.00413182
test eax, eax
pop ecx
je 0x4126fd
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
add eax, 2
push eax
call fcn.004131ea
mov ecx, dword [ebp - 0xc]
add esp, 0x10
test ecx, ecx
mov dword [ebp - 8], eax
jne 0x412e74
mov ecx, dword [ebp - 0x14]
jmp 0x412709
cmp ecx, 0x2a
jne 0x41269a
and dword [ebp - 0x10], 0
or ecx, 0xffffffff
jmp 0x4126f3
cmp ecx, 0x2b
jne 0x4126e7
push 1
or ecx, 0xffffffff
pop edi
mov eax, edx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
lea edx, [edi - 1]
imul edx, esi
add dword [ebp - 4], edx
cmp ecx, edi
jle 0x4126cf
sub ecx, edi
add esi, 7
imul ecx, esi
mov edx, dword [ebp - 4]
lea ecx, [edx + ecx - 6]
mov dword [ebp - 4], ecx
cmp byte [eax + 1], 0x2b
lea ecx, [eax + 1]
jne 0x4129ea
mov eax, ecx
add dword [ebp - 4], 6
jmp 0x4129ea
cmp ecx, 0x3f
jne 0x412700
and dword [ebp - 0x10], 0
push 1
pop ecx
mov eax, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
jmp 0x412710
mov eax, dword [ebp - 8]
push 1
pop ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov edi, dword [ebp - 0x10]
test edi, edi
jne 0x4126b0
inc dword [ebp - 4]
test ecx, ecx
jle 0x4126cf
add esi, 7
dec ecx
imul esi, ecx
add dword [ebp - 4], esi
jmp 0x4126cf
add eax, 3
mov dword [ebp - 8], eax
mov cl, byte [eax]
cmp cl, 0x3c
jne 0x412766
inc eax
mov dword [ebp - 8], eax
mov edx, eax
movzx ecx, byte [eax]
test byte [ecx + ebx], 0x10
je 0x412745
inc eax
mov dword [ebp - 8], eax
jmp 0x412736
cmp byte [eax], 0x3e
jne 0x412cec
inc dword [ebp - 0x40]
mov ecx, eax
sub ecx, edx
cmp ecx, dword [ebp - 0x3c]
jle 0x412869
mov dword [ebp - 0x3c], ecx
jmp 0x412869
cmp cl, 0x3d
je 0x412774
cmp cl, 0x3e
jne 0x412cf0
add dword [ebp - 4], 6
inc eax
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test byte [ecx + ebx], 0x10
jne 0x412778
cmp byte [eax], 0x29
jne 0x412cec
jmp 0x412879
add eax, 3
mov dword [ebp - 8], eax
movzx ecx, byte [eax]
test byte [ecx + 0x4fe708], 4
je 0x4127a8
inc eax
jmp 0x412796
cmp byte [eax], 0x29
jne 0x412cf4
jmp 0x4126de
mov eax, esi
jmp 0x412879
lea ecx, [ebp - 0x30]
jmp 0x4127f0
or dword [ecx], 0x40
jmp 0x4127f0
cmp edx, 0x69
je 0x4127ed
cmp edx, 0x6d
je 0x4127e9
cmp edx, 0x73
je 0x4127e4
cmp edx, 0x78
jne 0x412cf8
or dword [ecx], 8
jmp 0x4127f0
or dword [ecx], 4
jmp 0x4127f0
or dword [ecx], edi
jmp 0x4127f0
or dword [ecx], 1
inc eax
jmp 0x4124bd
cmp dword [ebp - 0x38], ebx
jne 0x412818
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
or ecx, dword [ebp + 0xc]
or dword [ebp - 0x38], 0xffffffff
not esi
and ecx, esi
add dword [ebp - 4], edi
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x2c]
test cl, 7
je 0x412833
add dword [ebp - 4], 4
mov dword [ebp - 0x48], edi
test cl, 1
je 0x412833
or byte [ebp + 0xf], 8
cmp edx, 0x29
jne 0x412879
cmp dword [ebp - 0x48], edi
jne 0x4129ea
cmp dword [ebp - 0x1c], 0
je 0x412851
cmp dword [ebp - 0x1c], 3
jne 0x4129ea
add dword [ebp - 0x1c], edi
jmp 0x4129ea
mov ecx, dword [ebp + 0xc]
not ecx
shr ecx, 0xc
and ecx, 1
mov dword [ebp - 0x2c], ecx
je 0x412879
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x64
jle 0x412879
mov dword [ebp - 0x4c], 6
mov edx, dword [ebp - 0x44]
cmp edx, 0xc8
jae 0x412cfc
mov cl, byte [ebp - 0x1c]
mov byte [ebp + edx - 0x14c], cl
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x46c], ecx
inc edx
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], edx
mov dword [ebp - 4], ecx
jmp 0x4129ea
inc dword [ebp - 4]
jmp 0x4126cf
mov eax, dword [ebp - 8]
mov ecx, esi
sub ecx, 0x5b
je 0x412abd
dec ecx
je 0x4129b6
sub ecx, edi
je 0x4129ae
sub ecx, 0x1d
je 0x4128ee
dec ecx
jne 0x412415
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
lea ecx, [ecx + edx + 3]
jmp 0x4128a9
inc eax
push eax
call fcn.00413182
test eax, eax
pop ecx
jne 0x412926
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x20], 0
je 0x412415
cmp esi, 0x5c
jne 0x412415
cmp byte [eax + 1], 0x45
lea ecx, [eax + 1]
jne 0x412415
and dword [ebp - 0x20], 0
jmp 0x412ccf
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
inc eax
push eax
call fcn.004131ea
mov ecx, dword [ebp - 0xc]
add esp, 0x10
test ecx, ecx
mov dword [ebp - 8], eax
jne 0x412e74
cmp dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x14]
jne 0x41295f
cmp ecx, 1
je 0x41296a
cmp ecx, 0xffffffff
je 0x41296a
cmp dword [ebp - 0x10], 1
jne 0x41296f
cmp ecx, 0xffffffff
jne 0x412985
inc dword [ebp - 4]
jmp 0x412997
mov edx, dword [ebp - 0x24]
sub dword [ebp - 4], edx
cmp dword [ebp - 0x10], 0
jle 0x412985
mov esi, dword [ebp - 4]
lea edx, [esi + edx + 3]
mov dword [ebp - 4], edx
xor edx, edx
test ecx, ecx
setle dl
dec edx
and edx, 2
inc edx
add edx, dword [ebp - 0x24]
add dword [ebp - 4], edx
cmp byte [eax + 1], 0x3f
lea ecx, [eax + 1]
jne 0x4126cf
mov eax, ecx
mov dword [ebp - 8], eax
jmp 0x4126cf
inc dword [ebp - 4]
jmp 0x412418
push 0
lea eax, [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00412f5a
mov ecx, dword [ebp - 0xc]
add esp, 0x14
test ecx, ecx
jne 0x412e71
push 1
pop edx
test eax, eax
mov dword [ebp - 0x24], edx
jl 0x4129fe
add dword [ebp - 4], 2
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
movzx esi, byte [eax]
test esi, esi
jne 0x412344
jmp 0x412d14
mov ecx, eax
neg ecx
cmp ecx, 0x13
jne 0x412a0c
mov dword [ebp - 0x20], edx
jmp 0x4129e7
cmp ecx, 0xf
je 0x412d04
cmp ecx, 0xd
je 0x412d04
cmp ecx, 0xe
je 0x412d04
inc dword [ebp - 4]
push 0xffffffffffffffec
pop ecx
cmp eax, ecx
jg 0x4129e7
sub ecx, eax
mov eax, edx
cmp ecx, 0x20
jge 0x412a3c
shl eax, cl
or dword [ebp - 0x58], eax
cmp ecx, dword [ebp - 0x5c]
jle 0x412a47
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 8]
add dword [ebp - 4], 2
cmp byte [eax + 1], 0x7b
jne 0x4129ea
add eax, 2
push eax
call fcn.00413182
test eax, eax
pop ecx
je 0x4129e7
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
add eax, 2
push eax
call fcn.004131ea
mov ecx, dword [ebp - 0xc]
add esp, 0x10
test ecx, ecx
mov dword [ebp - 8], eax
jne 0x412e74
cmp dword [ebp - 0x10], ecx
jne 0x412a9c
cmp dword [ebp - 0x14], 1
je 0x412aa8
cmp dword [ebp - 0x14], 0xffffffff
je 0x412aa8
cmp dword [ebp - 0x10], 1
jne 0x412aad
cmp dword [ebp - 0x14], 0xffffffff
jne 0x412aad
inc dword [ebp - 4]
jmp 0x412ab1
add dword [ebp - 4], 5
cmp byte [eax + 1], 0x3f
lea ecx, [eax + 1]
jmp 0x412cc9
inc eax
mov dword [ebp - 8], eax
cmp byte [eax], 0x5e
jne 0x412acf
push 0xa
inc eax
pop edi
mov dword [ebp - 8], eax
jmp 0x412ad1
xor edi, edi
mov cl, byte [eax]
test cl, cl
je 0x412c20
cmp dword [ebp - 0x20], 0
je 0x412b02
cmp cl, 0x5c
jne 0x412bdb
cmp byte [eax + 1], 0x45
lea ecx, [eax + 1]
jne 0x412bdb
and dword [ebp - 0x20], 0
mov eax, ecx
jmp 0x412c03
cmp cl, 0x5c
jne 0x412bb8
push 1
lea eax, [ebp - 0xc]
pop esi
push esi
push dword [ebp + 0xc]
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00412f5a
mov ecx, dword [ebp - 0xc]
add esp, 0x14
test ecx, ecx
mov ebx, eax
jne 0x412e71
neg eax
cmp eax, 4
jne 0x412b3d
push 8
jmp 0x412b44
cmp eax, 0xf
jne 0x412ba2
push 0x58
pop ebx
mov eax, dword [ebp - 8]
lea ecx, [eax + 1]
inc edi
or edx, 0xffffffff
cmp byte [ecx], 0x2d
jne 0x412c03
mov esi, eax
lea eax, [ecx + 1]
mov dword [ebp - 8], ecx
mov cl, byte [eax]
cmp cl, 0x5c
jne 0x412c37
push 1
mov dword [ebp - 8], eax
push dword [ebp + 0xc]
lea eax, [ebp - 0xc]
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00412f5a
mov ecx, dword [ebp - 0xc]
add esp, 0x14
test ecx, ecx
mov edx, eax
jne 0x412e71
neg eax
cmp eax, 4
jne 0x412be3
mov eax, dword [ebp - 8]
push 8
pop edx
jmp 0x412bf8
cmp eax, 0x13
jne 0x412bac
mov dword [ebp - 0x20], esi
jmp 0x412bb3
test ebx, ebx
jge 0x412b45
push 0xa
pop edi
mov eax, dword [ebp - 8]
jmp 0x412c03
cmp cl, 0x5b
jne 0x412bdb
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 8]
push ecx
push eax
call fcn.00413283
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 8]
je 0x412bdb
push 0xa
inc eax
pop edi
jmp 0x412c03
movzx ebx, byte [eax]
jmp 0x412b48
cmp eax, 0xf
jne 0x412beb
push 0x58
pop edx
mov eax, dword [ebp - 8]
test edx, edx
jge 0x412bf8
test edx, edx
mov eax, esi
jl 0x412c03
push 0xa
cmp edx, ebx
pop edi
jl 0x412d0c
inc eax
mov dword [ebp - 8], eax
mov cl, byte [eax]
test cl, cl
je 0x412c20
cmp dword [ebp - 0x20], 0
jne 0x412ae1
cmp cl, 0x5d
jne 0x412adb
cmp byte [eax], 0
je 0x412d10
cmp edi, 1
jne 0x412c48
add dword [ebp - 4], 3
jmp 0x4129ea
test cl, cl
je 0x412bf2
cmp cl, 0x5d
je 0x412bf2
mov dword [ebp - 8], eax
movzx edx, byte [eax]
jmp 0x412bee
add dword [ebp - 4], 0x21
cmp byte [eax + 1], 0x7b
jne 0x4129ea
add eax, 2
push eax
call fcn.00413182
test eax, eax
pop ecx
je 0x4129e7
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
add eax, 2
push eax
call fcn.004131ea
mov ecx, dword [ebp - 0xc]
add esp, 0x10
test ecx, ecx
mov dword [ebp - 8], eax
jne 0x412e74
cmp dword [ebp - 0x10], ecx
jne 0x412ca2
cmp dword [ebp - 0x14], 1
je 0x412cae
cmp dword [ebp - 0x14], 0xffffffff
je 0x412cae
cmp dword [ebp - 0x10], 1
jne 0x412cb3
cmp dword [ebp - 0x14], 0xffffffff
jne 0x412cb3
inc dword [ebp - 4]
jmp 0x412cb7
add dword [ebp - 4], 5
mov dl, byte [eax + 1]
lea ecx, [eax + 1]
cmp dl, 0x2b
je 0x4126dc
cmp dl, 0x3f
jne 0x4129ea
mov eax, ecx
jmp 0x4129ea
push 0x1a
jmp 0x412cfe
add eax, edi
push 0x1c
jmp 0x412cfe
push 0x12
jmp 0x412cfe
push 0x18
jmp 0x412cfe
push 0x1d
jmp 0x412cfe
push 0x2a
jmp 0x412cfe
push 0x29
jmp 0x412cfe
push 0x27
jmp 0x412cfe
push 0xc
jmp 0x412cfe
push 0x13
pop ecx
jmp 0x412e74
push 0x2d
pop ecx
jmp 0x412e71
push 8
jmp 0x412cfe
push 6
jmp 0x412cfe
add dword [ebp - 4], 4
test byte [ebp + 0xd], 0x40
je 0x412d22
add dword [ebp - 4], 6
cmp dword [ebp - 4], 0x10000
jle 0x412d2f
push 0x14
jmp 0x412d52
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 4]
lea edi, [eax + 3]
mov eax, edi
imul eax, dword [ebp - 0x40]
lea ebx, [eax + ecx + 0x28]
push ebx
call dword [0x51974c]
mov esi, eax
pop ecx
test esi, esi
jne 0x412d58
push 0x15
pop ecx
jmp 0x412e7c
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
add eax, 3
mov dword [esi + 4], ebx
mov word [esi + 0x1a], ax
mov ax, word [ebp - 0x40]
mov word [esi + 0x1c], ax
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0xc]
sub eax, 0x4fe140
neg eax
sbb eax, eax
mov dword [esi], 0x50435245
and eax, dword [ebp + 0x1c]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
mov word [esi + 0x18], 0x28
mov word [esi + 0x1e], cx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edi
movzx eax, word [esi + 0x18]
add eax, esi
mov dword [ebp - 0x68], eax
movzx edi, word [esi + 0x1a]
movzx edx, word [esi + 0x1c]
imul edi, edx
add edi, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0x70], edi
push eax
lea eax, [ebp - 0x84]
push ecx
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x54], ecx
push eax
push ecx
lea eax, [ebp - 0xc]
push ecx
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, ebx
and eax, 7
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x34], edi
push eax
mov byte [edi], 0x50
push ebx
mov dword [ebp - 0x18], ecx
call fcn.004132c1
mov ax, word [ebp - 0x18]
add esp, 0x30
mov word [esi + 0x10], ax
mov ax, word [ebp - 0x5c]
mov word [esi + 0x12], ax
cmp dword [ebp - 0x50], 0
je 0x412e1f
or byte [esi + 0xb], 4
cmp dword [ebp - 0xc], 0
jne 0x412e34
mov eax, dword [ebp - 8]
cmp byte [eax], 0
je 0x412e34
mov dword [ebp - 0xc], 0x16
mov eax, dword [ebp - 0x34]
and byte [eax], 0
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
sub eax, edi
cmp eax, dword [ebp - 4]
jle 0x412e4f
mov dword [ebp - 0xc], 0x17
mov ax, word [esi + 0x12]
cmp ax, word [esi + 0x10]
jbe 0x412e60
mov dword [ebp - 0xc], 0xf
cmp dword [ebp - 0xc], 0
je 0x412e9a
push esi
call dword [0x519750]
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
xor edx, edx
mov esi, dword [ebp + 0x14]
mov eax, dword [ecx*4 + 0x518f44]
mov dword [esi], eax
mov eax, dword [ebp + 0x10]
cmp eax, edx
je 0x412e93
mov dword [eax], ecx
xor eax, eax
jmp 0x412f55
test bl, 0x10
jne 0x412f15
push dword [ebp - 0x58]
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], ebx
push 0
push eax
push edi
call fcn.00414e3e
add esp, 0x10
test eax, eax
je 0x412ebe
or dword [esi + 8], 0x10
jmp 0x412f15
xor ebx, ebx
cmp dword [ebp - 0x28], ebx
jge 0x412eda
lea eax, [ebp + 0xc]
push ebx
push eax
push edi
call fcn.00414f9d
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x28], eax
jl 0x412f00
mov eax, dword [ebp - 0x28]
and eax, 0xff
test byte [ebp - 0x27], 1
je 0x412ef3
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [eax + ecx]
cmp ecx, eax
je 0x412ef6
mov eax, dword [ebp - 0x28]
or byte [esi + 0xb], 0x40
mov word [esi + 0x14], ax
jmp 0x412f15
push dword [ebp - 0x58]
push ebx
push edi
call fcn.00414efa
add esp, 0xc
test eax, eax
je 0x412f15
or byte [esi + 0xb], 0x10
mov edx, dword [ebp - 0x84]
test edx, edx
jl 0x412f53
mov ecx, dword [esi + 8]
test cl, 0x10
je 0x412f2c
test dh, 2
je 0x412f53
mov eax, edx
and eax, 0xff
test dh, 1
je 0x412f46
mov edi, dword [ebp - 0x7c]
movzx edi, byte [eax + edi]
cmp edi, eax
jne 0x412f46
and dh, 0xfe
or ecx, 0x20000000
mov word [esi + 0x16], dx
mov dword [esi + 8], ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret