Function at 0x44de9b
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x1c4
or dword [ebp], 0xffffffff
or dword [ebp + 0x30], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 0x78]
push edi
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp esi, ecx
push 4
mov dword [ebp - 0xc], ecx
mov byte [ebp + 0x67], cl
mov byte [ebp + 0x57], cl
mov byte [ebp + 0x37], cl
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x38], 1
mov dword [ebp + 4], ecx
mov dword [ebp + 0x5c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0x44], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], ecx
mov dword [ebp + 8], 0x49c1a4
pop ebx
je 0x44e5fd
cmp word [esi], cx
je 0x44e5fd
xor edi, edi
mov di, word [esi]
mov eax, edi
call fcn.0040bc38
test al, al
jne 0x44e5e8
cmp di, 0x2e
je 0x44e5db
cmp di, 0x24
je 0x44e5db
cmp di, 0x25
je 0x44e5db
cmp di, 0x2a
jne 0x44df4f
or byte [ebp + 0x67], 4
jmp 0x44e5db
push 0x7e
pop ecx
cmp di, cx
jne 0x44dfa0
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x44df6a
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x44e5db
cmp di, cx
jne 0x44dfa0
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x44df7e
or byte [ebp + 0x67], 8
jmp 0x44df63
cmp di, cx
jne 0x44dfa0
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x44df92
or byte [ebp + 0x67], 0xa
jmp 0x44df63
cmp di, cx
jne 0x44dfa0
or byte [ebp + 0x67], 1
jmp 0x44e5db
push ebx
push esi
push 0x49c19c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44dfc2
add esi, 6
mov dword [ebp - 0x38], pe_nt_image_headers32
jmp 0x44e5db
push ebx
push esi
push 0x49c194
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44dfe4
add esi, 6
mov dword [ebp + 4], pe_nt_image_headers32
jmp 0x44e5db
cmp di, 0x3c
jne 0x44dff3
mov byte [ebp + 0x57], 1
jmp 0x44e5db
cmp di, 0x3e
jne 0x44e002
mov byte [ebp + 0x57], 2
jmp 0x44e5db
push ebx
push esi
push 0x49c18c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e021
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x44e5db
push ebx
push esi
push 0x49c184
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e043
add esi, 6
mov dword [ebp + 0x4c], 1
jmp 0x44e5db
push ebx
push esi
push 0x49c17c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e065
add esi, 6
mov dword [ebp + 0x4c], 2
jmp 0x44e5db
push 5
push esi
push 0x49c174
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e084
add esi, 8
mov dword [ebp + 0x4c], ebx
jmp 0x44e5db
push 5
push esi
push 0x49c16c
call fcn.004318b1
add esp, 0xc
test al, al
push 8
je 0x44e0a5
pop eax
add esi, eax
mov dword [ebp + 0x4c], eax
jmp 0x44e5db
pop edi
push edi
push esi
push 0x49c160
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e0c8
add esi, 0xe
mov dword [ebp + 0x4c], 0x81
jmp 0x44e5db
push 5
push esi
push 0x49c158
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e0ea
add esi, edi
mov dword [ebp + 0x4c], 0x80
jmp 0x44e5db
push 5
push esi
push 0x49c150
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e10c
add esi, edi
mov dword [ebp + 0x4c], 0x20
jmp 0x44e5db
push 5
push esi
push 0x49c148
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e12e
mov dword [ebp + 0x5c], 1
add esi, edi
jmp 0x44e5db
push 6
push esi
push 0x49c140
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e151
mov dword [ebp + 0x5c], 2
add esi, 0xa
jmp 0x44e5db
push 6
push esi
push 0x49c138
call fcn.004318b1
add esp, 0xc
test al, al
jne 0x44e142
push ebx
push esi
push 0x49c130
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e183
mov dword [ebp + 0x5c], ebx
add esi, 6
jmp 0x44e5db
push 6
push esi
push 0x49c128
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e19f
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x5c], ebx
jmp 0x44e149
push 7
push esi
push 0x49c120
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e1c1
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
add esi, 0xc
jmp 0x44e5db
push edi
push esi
push 0x49c114
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e1e2
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x5c], edi
add esi, 0xe
jmp 0x44e5db
push 6
push esi
push 0x49c10c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e201
add esi, 0xa
mov dword [ebp + 0x5c], edi
jmp 0x44e5db
push 9
push esi
push 0x49c100
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e21a
add esi, 0x10
jmp 0x44e1f9
push 5
push esi
push 0x49c0f8
call fcn.004318b1
add esp, 0xc
test al, al
jne 0x44e242
push 5
push esi
push 0x49c0f8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e24a
mov dword [ebp + 0x5c], ebx
jmp 0x44e127
push 5
push esi
push 0x49c0f0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e26a
add esi, 0xa
and dword [ebp + 0x30], 0
jmp 0x44e5db
push 7
push esi
push 0x49c0e8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e286
add esi, 0xc
jmp 0x44e41c
push ebx
push esi
push 0x49c0e0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e2b8
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44e2ad
cmp ax, 0x5a
jbe 0x44e2b8
add esi, 6
mov dword [ebp + 0x5c], ebx
jmp 0x44e5db
push 5
push esi
push 0x49c0d8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e2e3
xor eax, eax
add esi, edi
inc eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 8], 0x49c0c8
jmp 0x44e5db
push 6
push esi
push 0x49c0c0
call fcn.004318b1
add esp, 0xc
test al, al
jne 0x44e30b
push 6
push esi
push 0x49c0b8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e313
push 2
add esi, 0xa
pop eax
jmp 0x44e2d1
push ebx
push esi
push 0x49c0b0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e335
add esi, 6
mov dword [ebp + 0x44], 0x64
mov dword [ebp + 0x5c], ebx
jmp 0x44e2d7
push 6
push esi
push 0x49c0a8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e35a
mov dword [ebp - 0x18], ebx
add esi, 0xa
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44e5db
push 7
push esi
push 0x49c0a0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e37f
add esi, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x44], edi
jmp 0x44e5db
push edi
push esi
push 0x49c094
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e39a
add esi, 0xe
mov dword [ebp - 0x10], edi
jmp 0x44e374
push 6
push esi
push 0x49c08c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e3b3
add esi, 0xa
jmp 0x44e374
push 9
push esi
push 0x49c080
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e3cc
add esi, 0x10
jmp 0x44e374
push 5
push esi
push 0x49c078
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e3ed
add esi, edi
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44e2d7
push 6
push esi
push 0x49c070
call fcn.004318b1
add esp, 0xc
test al, al
jne 0x44e34c
push 7
push esi
push 0x49c068
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e431
mov dword [ebp + 0x44], ebx
cmp byte [0x4acb89], 3
mov dword [ebp + 0x5c], ebx
jne 0x44e5db
jmp 0x44e1f9
push ebx
push esi
push 0x49c060
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e460
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44e458
cmp ax, 0x5a
jbe 0x44e460
add esi, 6
jmp 0x44e34f
push ebx
push esi
push 0x49c058
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e4b5
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x58], esi
jne 0x44e48a
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x44e4ae
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.00438b8e
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x44e5db
push ebx
push esi
push 0x49c050
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e4f6
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x20], 1
mov dword [ebp + 0x58], esi
jne 0x44e4df
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x44e4ae
lea eax, [ebp + 0x20]
jmp 0x44e49f
push 3
push esi
push 0x49c04c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e515
add esi, ebx
mov byte [ebp + 0x37], 1
jmp 0x44e5db
push 2
pop edi
push edi
push esi
push 0x49c048
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e54e
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
mov dword [ebp - 0x20], 1
call fcn.00438b8e
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
jmp 0x44e5d9
push edi
push esi
push 0x49c044
call fcn.004318b1
add esp, 0xc
test al, al
je 0x44e5db
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
call fcn.00438b8e
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44e58c
call fcn.0040bc38
test al, al
jne 0x44e58c
add dword [ebp + 0x58], edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.00438b8e
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44e5b2
call fcn.0040bc38
test al, al
jne 0x44e5b2
add dword [ebp + 0x58], edi
mov esi, dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x58]
push eax
mov dword [ebp - 4], esi
call fcn.00438b8e
mov eax, dword [ebp + 0xc]
sub eax, esi
mov esi, dword [ebp + 0x58]
inc eax
cmp word [esi], 0x5d
pop ecx
pop ecx
mov dword [ebp], eax
je 0x44e5db
sub esi, edi
inc esi
inc esi
xor ecx, ecx
cmp word [esi], cx
jne 0x44df0e
cmp dword [ebp + 4], ecx
je 0x44e5fd
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.00404579
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push eax
call fcn.00430961
mov eax, dword [ebp + 0x24]
pop ecx
jmp 0x44e61a
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x24], eax
cmp word [eax], 0x26
je 0x44e612
lea ecx, [ebp + 4]
call fcn.00435d62
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x50], eax
xor ebx, ebx
jmp 0x44e63d
cmp cx, 0x3d
je 0x44e645
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44e632
mov dword [ebp + 0x60], 0x4949a4
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x56], 0
je 0x44e65e
mov byte [ebp + 0x56], 1
jmp 0x44e666
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x50]
call fcn.0040cd10
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x7e
pop ecx
jne 0x44e6b6
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0xc], edx
jmp 0x44e68c
cmp cx, 0x7e
je 0x44e697
inc eax
inc eax
mov dword [ebp + 0x50], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44e684
cmp word [eax], 0x7e
je 0x44e6a7
mov edi, 0x80070057
jmp 0x44f1e2
mov word [eax], bx
add dword [ebp + 0x50], 2
cmp word [edx], bx
jne 0x44e6b6
mov dword [ebp - 0xc], ebx
lea ecx, [ebp - 8]
call fcn.00435d62
mov esi, dword [ebp - 0x14]
push 0x3b
push 0x2c
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.0042c70d
push 0x3b
push 0x2c
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.0042c70d
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
je 0x44e707
cmp word [eax], bx
jne 0x44e707
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x44e707
xor edi, edi
jmp 0x44f1da
cmp byte [ebp + 0x7c], 2
mov edi, esi
setge byte [ebp + 0x4b]
mov al, byte [ebp + 0x4b]
neg al
mov ecx, esi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x38], ecx
sbb eax, eax
and eax, esi
cmp dword [ebp + 0x28], ebx
mov dword [ebp + 0x1c], eax
jle 0x44e748
dec dword [ebp + 0x28]
js 0x44e73f
mov eax, dword [ebp + 0x28]
inc eax
sub dword [ebp + 0x28], eax
dec eax
mov ecx, dword [ecx + 0x24]
jne 0x44e736
mov dword [ebp + 0x38], ecx
cmp byte [ebp + 0x4b], 0
je 0x44e748
mov dword [ebp + 0x1c], ecx
mov eax, dword [ebp + 0x20]
cmp eax, ebx
jle 0x44e75c
dec eax
js 0x44e75c
inc eax
dec eax
mov edi, dword [edi + 0x24]
jne 0x44e753
mov dword [ebp + 0x18], edi
cmp byte [ebp + 0x56], 0
je 0x44e769
mov byte [ebp + 0x57], 0
mov dword [ebp + 0x4c], ebx
push 0x4ad684
call dword [fcn.004944b0]
cmp dword [ebp], ebx
mov edi, dword [fcn.004944c4]
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
jle 0x44e7ca
push dword [ebp + 0x50]
call edi
push dword [ebp + 0x60]
mov esi, eax
inc esi
call edi
inc eax
lea eax, [eax + esi + 0xc8]
push eax
lea ecx, [ebp + 0xc]
call fcn.00435da9
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0xc]
lea esi, [eax + esi*2 + 0x50]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
jmp 0x44ee5e
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
lea edi, [ebp - 0x74]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x7c]
xor esi, esi
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x3c], esi
mov byte [ebp + 0x73], 0
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x20], ebx
call fcn.00435d62
cmp dword [ebp + 0x30], ebx
lea eax, [ebp + 0x58]
mov dword [ebp - 0x34], eax
lea eax, [ebp + 0x70]
mov dword [ebp + 0x58], ebx
mov dword [ebp - 0x4c], eax
jl 0x44e82b
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00438b8e
test eax, eax
pop ecx
pop ecx
jle 0x44ed32
movzx eax, byte [ebp + 0x30]
mov dword [ebp + 0x30], eax
jmp 0x44ed32
cmp byte [ebp + 0x37], 0
je 0x44e849
push dword [ebp + 0x60]
push dword [ebp + 0x18]
call fcn.0043916a
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x44ed32
test byte [ebp + 0x4c], 0x80
je 0x44ea0f
mov esi, dword [ebp + 0x60]
push 0x26
pop eax
or edi, 0xffffffff
cmp word [esi], ax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], esi
mov byte [ebp + 0x4a], 0
jne 0x44e938
push 2
mov byte [ebp + 0x4a], 1
pop ecx
cmp ax, 0x3b
je 0x44e8a1
cmp ax, 0x2c
je 0x44e8a1
cmp ax, 0x3a
je 0x44e8a1
cmp ax, 0x40
je 0x44e8a1
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44e87c
mov ax, word [esi]
cmp ax, bx
je 0x44e8b1
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x40], esi
cmp ax, 0x40
mov dword [ebp + 0x2c], esi
jne 0x44e8ee
mov ax, word [esi]
cmp ax, bx
je 0x44e8ee
cmp ax, 0x3b
je 0x44e8e1
cmp ax, 0x2c
je 0x44e8e1
cmp ax, 0x3a
je 0x44e8e1
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44e8c2
cmp word [esi], bx
je 0x44e8ee
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x40], esi
mov ecx, dword [ebp + 0x18]
push edi
push ebx
push dword [ebp + 0x60]
call fcn.0040cb92
cmp eax, ebx
je 0x44e95a
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0xc]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x2c]
and edi, 0x3fffffff
push eax
mov dword [ebp + 0x3c], edi
call fcn.00438b6a
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
jl 0x44e95a
mov eax, dword [ebp - 0x30]
jg 0x44e92e
cmp eax, ebx
jbe 0x44e95a
add dword [ebp + 0x60], eax
sub edi, eax
mov dword [ebp + 0x3c], edi
jmp 0x44e95a
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00438b6a
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x40]
pop ecx
mov dword [ebp + 0x60], eax
cmp word [esi], bx
pop ecx
je 0x44e95a
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp dword [ebp + 0x60], ebx
jne 0x44e96d
mov dword [ebp + 0x60], 0x4958ae
xor esi, esi
jmp 0x44ed32
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x44e97d
inc esi
inc esi
mov dword [ebp + 0x40], esi
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00438b8e
cmp eax, 1
pop ecx
pop ecx
jge 0x44e9b4
cmp byte [ebp + 0x4a], 0
jne 0x44e9c5
test bl, bl
push dword [ebp + 0x60]
je 0x44e9a8
call dword [fcn.00494488]
mov esi, eax
jmp 0x44e9c8
call dword [fcn.004944c4]
mov esi, eax
shl esi, 1
jmp 0x44e9c8
cmp byte [ebp + 0x4a], 0
je 0x44e9c5
mov esi, dword [ebp + 0x3c]
cmp esi, edi
jle 0x44e9c8
mov esi, edi
jmp 0x44e9c8
mov esi, dword [ebp + 0x3c]
xor ebx, ebx
cmp esi, ebx
jl 0x44ee94
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 0x81
jne 0x44ed32
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x60]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x10]
call fcn.0040cb92
cmp eax, ebx
je 0x44ee9e
cmp dword [eax + 0xc], ebx
jge 0x44eeb1
mov dword [eax + 4], ebx
jmp 0x44eeb1
xor edi, edi
fldz
xor ebx, ebx
fstp qword [ebp - 0x28]
cmp dword [ebp + 0x4c], edi
mov dword [ebp + 0x40], edi
je 0x44ec55
mov ecx, dword [ebp - 0x14]
push edi
push 0x2c
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0042c70d
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push edi
push dword [ebp + 0x10]
call fcn.0040cb92
cmp eax, edi
je 0x44ee94
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
lea ecx, [eax + 0xc]
mov eax, dword [ecx]
mov esi, eax
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 8
mov dword [ebp + 0x3c], esi
jne 0x44eab6
push dword [ebp - 8]
push esi
push dword [ebp - 0x14]
call fcn.004380d1
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp word [eax], bx
je 0x44eecb
push dword [edi]
lea eax, [ebp - 0xbc]
push 0x497e64
push eax
call dword [fcn.0049477c]
lea eax, [ebp - 0xbc]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [fcn.004944c4]
mov esi, eax
shl esi, 1
jmp 0x44ed32
cmp dword [ebp + 0x4c], 4
jne 0x44eb78
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040cb92
test eax, eax
je 0x44ed32
cmp dword [eax + 0xc], 0
jge 0x44ed32
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x5c], esi
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x5c]
lea edi, [eax + ecx]
mov eax, dword [ebx + 0xc]
mov esi, eax
and esi, 0x3fffffff
test eax, eax
jge 0x44eb0b
cmp edi, esi
jg 0x44ee94
mov eax, edi
sub eax, esi
test eax, eax
jle 0x44eb45
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
add eax, 2
lea ecx, [ebx + 4]
push eax
mov dword [ebp + 0x7c], eax
call fcn.00435da9
mov eax, dword [ebp + 0x7c]
add eax, eax
sub eax, esi
push eax
mov eax, dword [ebx + 4]
add eax, esi
push 0
push eax
call fcn.0047fd70
add esp, 0xc
mov dword [ebx + 0xc], edi
cmp dword [ebp + 0x4c], 4
jne 0x44eb5e
mov eax, dword [ebp + 0x5c]
add eax, 3
and eax, 0xfffffffe
cmp eax, esi
mov dword [ebp + 0x5c], eax
jle 0x44eb5e
mov dword [ebp + 0x5c], esi
push dword [ebp + 0x5c]
mov eax, dword [ebx + 4]
add eax, dword [ebp + 0x40]
push dword [ebp + 0x2c]
push eax
call fcn.004102e0
add esp, 0xc
jmp 0x44eecb
cmp dword [ebp + 0x4c], 1
jne 0x44ebdf
sar eax, 1
and eax, 0x1fffffff
mov esi, eax
lea edi, [esi + esi*4]
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00435c7d
mov ebx, dword [ebp + 0x58]
xor eax, eax
push eax
push eax
push edi
push ebx
push esi
push dword [ebp + 0x60]
push eax
push eax
call dword [fcn.004941a8]
mov esi, eax
test esi, esi
jge 0x44ebb5
xor esi, esi
jmp 0x44ebbb
cmp esi, edi
jle 0x44ebbb
mov esi, edi
lea eax, [esi + 1]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov byte [esi + ebx], 0
call fcn.00435da9
mov eax, dword [ebp + 0x58]
and word [eax + edi*2], 0
jmp 0x44ec23
cmp dword [ebp + 0x4c], 2
jne 0x44ec2f
mov esi, dword [ebp + 0x3c]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00435da9
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4acb54]
mov esi, eax
cmp esi, edi
jge 0x44ec0e
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00435da9
mov eax, dword [ebp + 0x58]
add esi, esi
mov word [esi + eax], di
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x44ed32
cmp dword [ebp + 0x4c], 0x20
jne 0x44eecb
mov eax, dword [edi]
mov dword [ebp + 0x60], eax
mov esi, dword [ecx]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x4c], ecx
mov byte [ebp + 0x73], 1
and esi, 0x3fffffff
jmp 0x44ed32
cmp byte [ebp + 0x67], 0
je 0x44ec81
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44ec81
xor ecx, ecx
mov cl, byte [ebp - 0x38]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x10]
call fcn.0044042b
mov ecx, dword [ebp + 0x18]
push eax
call fcn.0044dda1
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, edi
jl 0x44eca6
lea ebx, [eax + 1]
mov ecx, dword [ebp + 0x18]
push edi
push edi
lea eax, [ebp + 0x20]
push eax
push dword [ebp + 0x60]
call fcn.0043d5b3
dec ebx
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x60], eax
jne 0x44ec8c
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44ecc8
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00444e35
mov esi, dword [ebp + 0x3c]
add esp, 0x10
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x58]
sete byte [ebp + 0x73]
cmp dword [ebp + 0x44], edi
jne 0x44eed2
cmp dword [ebp + 0x5c], edi
jne 0x44effc
cmp byte [ebp + 0x57], 0
je 0x44ed22
cmp esi, edi
jle 0x44f1ae
mov ebx, 0x4ad684
push ebx
call dword [fcn.004944b0]
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040cb92
cmp eax, edi
mov dword [ebp + 0x3c], eax
jne 0x44f0a5
push ebx
call dword [fcn.004944ac]
jmp 0x44ed32
cmp byte [ebp + 0x56], 0
je 0x44ed32
cmp byte [ebp + 0x4b], 0
je 0x44f166
xor eax, eax
cmp dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
je 0x44ed6a
cmp byte [ebp + 0x7c], al
jne 0x44ed6a
mov ecx, dword [ebp + 0x38]
test byte [ecx + 9], 0xf
jne 0x44ed6a
cmp byte [ebp + 0x73], al
jne 0x44ed6a
cmp dword [ebp + 0x30], eax
jge 0x44ed6a
cmp byte [ebp + 0x56], al
jne 0x44ed6a
push dword [ebp + 0x60]
push dword [ebp + 0x50]
call dword [fcn.004941ec]
jmp 0x44ee37
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040cb92
mov edi, eax
test edi, edi
mov ebx, edi
jne 0x44edd2
cmp dword [ebp + 0x30], eax
jge 0x44edc9
cmp byte [ebp + 0x73], al
mov eax, 0x4949a4
jne 0x44ed94
mov eax, dword [ebp + 0x60]
mov cl, byte [ebp + 0x73]
neg cl
sbb ecx, ecx
not ecx
and ecx, esi
push ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x50]
call fcn.004107a0
cmp dword [ebp - 0xc], 0
mov edi, eax
je 0x44edc5
test edi, edi
je 0x44edc9
push dword [ebp - 0xc]
lea ecx, [edi + 8]
call fcn.00440487
test edi, edi
jne 0x44edd2
mov dword [ebp + 0x2c], 1
jmp 0x44ee37
cmp dword [ebp + 0x30], 0
jl 0x44edf1
mov eax, dword [edi + 0xc]
and eax, 0x3fffffff
push eax
push dword [ebp + 0x30]
push dword [edi + 4]
call fcn.0047fd70
add esp, 0xc
jmp 0x44ee37
cmp byte [ebp + 0x56], 0
jne 0x44ee37
test ebx, ebx
je 0x44ee08
cmp dword [ebx + 0xc], 0xfffff000
jge 0x44ee08
and dword [ebx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x44ee28
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [edi + 4]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0xc], esi
jmp 0x44ee37
test ebx, ebx
je 0x44ee37
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402c01
cmp dword [ebp], 0
jle 0x44f1ab
lea ecx, [ebp + 0x58]
call fcn.0043092f
lea ecx, [ebp + 0x10]
call fcn.0043092f
lea ecx, [ebp + 0x20]
call fcn.0043092f
mov esi, dword [ebp - 0x40]
xor ebx, ebx
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x3c]
push dword [ebp + 0x14]
dec dword [ebp]
push dword [ebp - 0x48]
mov dword [ebp + 0x50], eax
push eax
call dword [fcn.0049477c]
push dword [ebp - 4]
mov dword [ebp + 0x60], esi
push dword [ebp - 0x44]
push esi
call fcn.00433380
add esp, 0x1c
inc dword [ebp + 0x14]
inc dword [ebp - 4]
jmp 0x44e7ca
mov edi, 0x80070057
jmp 0x44f1ae
mov ecx, dword [ebp + 0x38]
push ebx
push 0xffffffffffffffff
push 0x4949a4
push dword [ebp + 0x50]
call fcn.004107a0
or esi, 0x80000000
mov dword [eax + 0xc], esi
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.0043092f
xor edi, edi
jmp 0x44f1ae
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x24], eax
call fcn.00435d62
mov ecx, dword [ebp - 0x14]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0042c70d
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x44ef06
lea ecx, [ebp + 0x7c]
call fcn.0043092f
jmp 0x44f1ae
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x70], edi
call fcn.00438b8e
mov eax, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
lea ebx, [esi + eax]
push dword [ebp + 0x50]
mov word [ebp - 0x15c], di
call fcn.0040cb92
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x44ef4e
mov ecx, dword [eax + 0xc]
and ecx, 0x3fffffff
cmp ecx, ebx
jl 0x44efda
mov eax, dword [eax + 4]
push dword [ebp + 0x5c]
add eax, esi
push eax
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp + 0x70], edi
call fcn.004102e0
add esp, 0xc
cmp dword [ebp - 0x18], edi
je 0x44ef82
fld dword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x49c03c
jmp 0x44ef99
cmp dword [ebp - 0x1c], edi
jne 0x44ef8c
cmp dword [ebp - 0x10], edi
je 0x44efa8
fld qword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x49c034
lea eax, [ebp - 0x15c]
push eax
call dword [fcn.0049477c]
jmp 0x44efd7
cmp dword [ebp + 0x44], 0x64
lea eax, [ebp - 0x15c]
jne 0x44efc8
push dword [ebp - 0x7c]
push 0x497e64
push eax
call dword [fcn.0049477c]
add esp, 0xc
jmp 0x44efda
push dword [ebp + 8]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push eax
call fcn.004752a8
add esp, 0x10
mov ecx, dword [ebp + 0x38]
lea eax, [ebp - 0x15c]
push eax
push dword [ebp + 0x7c]
call fcn.00435749
lea ecx, [ebp + 0x7c]
call fcn.0043092f
mov edi, dword [ebp + 0x70]
jmp 0x44f1ae
cmp dword [ebp - 0x18], edi
mov dword [ebp + 0x7c], eax
je 0x44f019
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00438963
fld qword [ebp - 0x28]
fstp dword [ebp - 0x7c]
jmp 0x44f045
cmp dword [ebp - 0x1c], edi
jne 0x44f023
cmp dword [ebp - 0x10], edi
je 0x44f038
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00438963
fld qword [ebp - 0x28]
fstp qword [ebp - 0x7c]
jmp 0x44f045
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00438b6a
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x44f065
add dword [ebp + 0x7c], 2
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x40], edi
call fcn.00438b8e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040cb92
mov ebx, eax
cmp ebx, edi
jne 0x44eaeb
mov ecx, dword [ebp + 0x38]
push 0
push 0xffffffffffffffff
push 0x4949a4
push dword [ebp + 0x50]
call fcn.004107a0
mov ebx, eax
test ebx, ebx
jne 0x44eaeb
xor edi, edi
inc edi
jmp 0x44f1ae
mov edx, dword [eax + 0xc]
mov ecx, edx
and ecx, 0x3fffffff
test edx, edx
lea edi, [eax + 4]
mov eax, dword [edi]
setl byte [ebp + 0x7f]
cmp byte [ebp + 0x7f], 0
mov dword [ebp + 0x70], ecx
mov dword [ebp + 0x78], eax
je 0x44f0ca
and dword [edi], 0
mov eax, dword [ebp + 0x70]
add eax, esi
mov dword [ebp + 0x2c], eax
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
lea eax, [ebx + 2]
push eax
mov ecx, edi
call fcn.00435da9
mov eax, dword [edi]
add ebx, ebx
and word [ebx + eax + 2], 0
mov eax, dword [edi]
and word [ebx + eax], 0
cmp byte [ebp + 0x57], 1
mov edi, dword [edi]
jne 0x44f119
cmp byte [ebp + 0x7f], 0
je 0x44f112
push dword [ebp + 0x70]
push dword [ebp + 0x78]
push edi
call fcn.004102e0
add esp, 0xc
mov eax, dword [ebp + 0x70]
add edi, eax
jmp 0x44f140
cmp byte [ebp + 0x57], 2
jne 0x44f14d
cmp byte [ebp + 0x7f], 0
push dword [ebp + 0x70]
lea eax, [edi + esi]
je 0x44f136
push dword [ebp + 0x78]
push eax
call fcn.004102e0
jmp 0x44f13d
push edi
push eax
call fcn.00410296
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.004102e0
add esp, 0xc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
push 0x4ad684
mov dword [ecx + 0xc], eax
call dword [fcn.004944ac]
jmp 0x44eecb
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040cb92
mov esi, eax
test esi, esi
je 0x44eecb
cmp dword [esi + 0xc], 0xfffff000
jge 0x44f195
mov eax, dword [esi + 4]
and word [eax], 0
jmp 0x44eecb
push 0x4949a4
lea ecx, [esi + 4]
call fcn.0044042b
and dword [esi + 0xc], 0
jmp 0x44eecb
mov edi, dword [ebp + 0x2c]
lea ecx, [ebp + 0x58]
call fcn.0043092f
lea ecx, [ebp + 0x10]
call fcn.0043092f
lea ecx, [ebp + 0x20]
call fcn.0043092f
lea ecx, [ebp + 0xc]
call fcn.0043092f
mov eax, 0x4ad684
push eax
call dword [fcn.004944ac]
lea ecx, [ebp - 8]
call fcn.0043092f
lea ecx, [ebp + 4]
call fcn.0043092f
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10