Function at 0x42cd70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x50
mov ecx, dword [esp + 0x58]
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], 0
mov eax, dword [ecx]
mov dword [esp + 0x20], 0
mov edx, dword [eax]
mov dword [esp + 4], edx
mov edx, dword [edx]
mov dword [esp + 0xc], edx
cmp byte [edx + 0x41], 0
jne 0x42daab
mov edx, dword [esp + 0x5c]
push ebx
push ebp
push esi
push edi
mov edi, dword [ecx + 0x14]
lea edx, [edx + edx*2]
shl edx, 4
lea esi, [eax + 0x44]
add edi, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], esi
mov ebp, dword [edi]
mov dword [esp + 0x18], ebp
push dword [ebp + 0xc]
push esi
call fcn.0042f5b0
mov bl, byte [ebp]
add esp, 8
mov dword [esp + 0x44], eax
movzx eax, bl
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], eax
cmp eax, 0x4b
jne 0x42ce13
test dword [ebp + 4], 0x800
mov eax, dword [ebp + 0x14]
push eax
push esi
je 0x42ce0c
call fcn.0042f360
jmp 0x42ce34
call fcn.0042f1d0
jmp 0x42ce34
cmp eax, 0x4c
jne 0x42ce2b
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
jmp 0x42ce37
push dword [ebp + 0x10]
push esi
call fcn.0042f5b0
add esp, 8
push ebp
mov dword [edi + 0x20], eax
push esi
mov dword [edi + 0x24], edx
call fcn.0042f5b0
mov esi, eax
mov dword [esp + 0x54], eax
add esp, 8
mov eax, edx
test byte [ebp + 4], 1
mov dword [esp + 0x24], eax
je 0x42ce88
movsx ecx, word [ebp + 0x20]
push ecx
push dword [esp + 0x38]
call fcn.00435830
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x24]
or esi, ecx
or eax, edx
mov dword [esp + 0x4c], esi
add ecx, 0xffffffff
mov dword [esp + 0x24], eax
adc edx, 0xffffffff
mov dword [esp + 0x40], edx
jmp 0x42ce94
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x2c], eax
xor eax, eax
mov dword [esp + 0x38], ecx
mov dword [edi + 0x28], esi
mov dword [edi + 8], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov word [edi + 0x12], ax
cmp bl, 0x4b
je 0x42d070
cmp bl, 0x4f
jb 0x42cec9
cmp bl, 0x53
jbe 0x42d070
cmp bl, 0x4c
je 0x42d070
mov al, byte [ebp]
mov ebx, dword [esp + 0x68]
cmp al, 0x4a
jne 0x42d04b
cmp byte [ebx + 8], 0x48
jne 0x42d92d
mov eax, dword [ebp + 0x14]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ecx
nop
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x1c]
push 0
push 0
push dword [ecx + eax]
push edi
call fcn.0042ef70
push 0
push 0
push dword [ebp + 0xc]
mov ebx, eax
push edi
call fcn.0042ef70
mov ebp, eax
add esp, 0x20
mov al, byte [esi + 0x4ebc58]
mov byte [esp + 0x13], al
cmp al, 0x48
mov eax, dword [esp + 0x14]
jne 0x42cf5e
test ebp, ebp
je 0x42cf5e
test ebx, ebx
je 0x42cf5e
cmp dword [eax + 0x40], 0
jne 0x42cf5e
push ebx
mov ebx, eax
push ebp
push dword [ebx]
call fcn.004540f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x42cfd3
jmp 0x42cfa5
push 0
push 0x2c
push dword [eax]
call fcn.00451610
mov edi, eax
add esp, 0xc
test edi, edi
je 0x42cfbc
mov al, byte [esp + 0x13]
mov byte [edi], al
mov eax, 0xffffffff
mov word [edi + 0x1e], ax
test ebx, ebx
je 0x42cf93
mov dword [edi + 0x10], ebx
mov eax, dword [ebx + 4]
and eax, 0x200100
or dword [edi + 4], eax
test ebp, ebp
je 0x42cfa5
mov dword [edi + 0xc], ebp
mov eax, dword [ebp + 4]
and eax, 0x200100
or dword [edi + 4], eax
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 4]
and eax, 1
or dword [edi + 4], eax
mov ax, word [ebp + 0x20]
mov word [edi + 0x20], ax
jmp 0x42cfd7
mov eax, dword [esp + 0x14]
push ebp
mov esi, dword [eax]
push esi
call fcn.00456d20
push ebx
push esi
call fcn.00456d20
add esp, 0x10
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x68]
push 3
push edi
push ebx
call fcn.0048d8f0
mov esi, eax
push esi
push ebx
push dword [esp + 0x78]
call fcn.0042cd70
mov ecx, dword [ebx + 0x14]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x84]
add edx, edx
mov edi, dword [esp + 0x38]
add esp, 0x18
mov esi, dword [esp + 0x20]
add edi, ecx
mov dword [ecx + edx*8 + 4], eax
mov ecx, dword [ebx + 0x14]
mov ax, word [ecx + esi + 0x10]
mov word [ecx + edx*8 + 0x10], ax
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0x24]
add ecx, 0x18
mov dword [esp + 0x24], ecx
inc byte [esi + eax + 0x16]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
inc esi
mov dword [esp + 0x2c], esi
cmp ecx, 0x30
jl 0x42cf00
jmp 0x42d270
cmp al, 0x47
jne 0x42d270
push dword [esp + 0x6c]
push ebx
push dword [esp + 0x6c]
call fcn.0042dab0
mov edi, dword [ebx + 0x14]
add esp, 0xc
add edi, dword [esp + 0x20]
jmp 0x42d270
push dword [ebp + 0xc]
call fcn.00458050
push dword [ebp + 0x10]
mov esi, eax
call fcn.00458050
mov edx, dword [esp + 0x4c]
add esp, 8
mov ecx, dword [esp + 0x48]
mov ebp, eax
and edx, dword [edi + 0x20]
and ecx, dword [edi + 0x24]
or edx, ecx
mov dword [esp + 0x2c], 0xfff
je 0x42d0a9
mov dword [esp + 0x2c], 0x400
or edx, 0xffffffff
cmp byte [esi], 0x9a
jne 0x42d0f0
mov edx, dword [esi + 0x18]
mov dword [edi + 8], edx
movsx eax, word [esi + 0x1c]
mov dword [edi + 0xc], eax
cmp bl, 0x4b
jne 0x42d0ca
mov eax, 1
jmp 0x42d0e8
cmp bl, 0x4c
jne 0x42d0d6
mov eax, 0x80
jmp 0x42d0e8
mov ecx, dword [esp + 0x50]
mov eax, 2
add ecx, 0xffffffb1
shl ax, cl
movzx eax, ax
and eax, dword [esp + 0x2c]
mov word [edi + 0x12], ax
test ebp, ebp
je 0x42d268
cmp byte [ebp], 0x9a
jne 0x42d268
mov dword [esp + 0x50], 0
test edx, edx
js 0x42d1a7
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
push 0
push 0
push ebp
push ebx
call fcn.0042ef70
add esp, 0x10
mov esi, eax
cmp byte [ebx + 0x41], 0
je 0x42d142
push esi
push ebx
call fcn.00456d20
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
mov edi, dword [esp + 0x68]
push 3
push esi
push edi
call fcn.0048d8f0
add esp, 0xc
test eax, eax
je 0x42daa7
push dword [esp + 0x6c]
lea ebx, [eax + eax*2]
push eax
shl ebx, 4
add ebx, dword [edi + 0x14]
push edi
call fcn.00438460
mov edi, dword [edi + 0x14]
add esp, 0xc
add edi, dword [esp + 0x20]
or word [edi + 0x14], 8
cmp byte [ebp], 0x4f
jne 0x42d1ad
test byte [ebp + 4], 1
jne 0x42d1ad
mov eax, dword [esp + 0x1c]
mov ecx, 0x200
test word [eax + 0x3c], cx
jne 0x42d1ad
mov eax, 0x400
or word [edi + 0x12], ax
mov dword [esp + 0x50], eax
jmp 0x42d1ad
mov esi, dword [esp + 0x18]
mov ebx, edi
mov ecx, dword [esi + 0x10]
mov edx, 0x100
mov ebp, dword [esi + 0xc]
mov dword [esp + 0x58], edx
movzx eax, word [ecx + 4]
and ax, dx
movzx edx, ax
movzx eax, word [ebp + 4]
and ax, word [esp + 0x58]
cmp dx, ax
jne 0x42d1fd
test dx, dx
je 0x42d1e2
and dword [ecx + 4], 0xfffffeff
jmp 0x42d1fd
push ebp
push dword [esp + 0x18]
call fcn.00456a00
add esp, 8
test eax, eax
je 0x42d1fd
mov eax, dword [esi + 0xc]
or dword [eax + 4], 0x100
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x10], eax
mov al, byte [esi]
mov dword [esi + 0xc], ecx
cmp al, 0x50
jb 0x42d217
sub al, 0x50
xor al, 2
add al, 0x50
mov byte [esi], al
push ecx
call fcn.00458050
mov ecx, dword [eax + 0x18]
mov dword [ebx + 8], ecx
movsx eax, word [eax + 0x1c]
mov ecx, dword [esp + 0x4c]
or ecx, dword [esp + 0x44]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x3c]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x2c], eax
movzx eax, byte [esi]
push eax
call fcn.0043c6f0
add ax, word [esp + 0x58]
add esp, 8
and ax, word [esp + 0x2c]
mov word [ebx + 0x12], ax
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x18]
cmp byte [ebx + 8], 0x48
jne 0x42d92d
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
push ebx
call fcn.00436b70
add esp, 0x14
test eax, eax
je 0x42d92d
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x50], eax
test esi, esi
je 0x42d469
test dword [esi + 4], 0x400
mov eax, 0x2c
jne 0x42d2f0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x42d2f0
cmp byte [ecx], 0
mov eax, ecx
je 0x42d2e6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x42d2e0
sub eax, ecx
and eax, 0x3fffffff
add eax, 0x2d
add eax, 7
and eax, 0xfffffff8
cdq
push edx
push eax
push dword [esp + 0x24]
call fcn.00451570
mov ebp, eax
add esp, 0xc
mov ebx, ebp
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x42d465
mov ebx, dword [esi + 4]
test ebx, 0x400
jne 0x42d344
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x42d344
cmp byte [ecx], 0
mov eax, ecx
je 0x42d336
nop
inc eax
cmp byte [eax], 0
jne 0x42d330
sub eax, ecx
and eax, 0x3fffffff
inc eax
mov dword [esp + 0x54], eax
jmp 0x42d34c
mov dword [esp + 0x54], 0
test ebx, 0x4000
je 0x42d35b
mov ebx, 0xc
jmp 0x42d36b
and ebx, 0x2000
neg ebx
sbb ebx, ebx
and ebx, 0xffffffec
add ebx, 0x2c
push ebx
push esi
push ebp
call fcn.004c15c0
mov eax, 0x2c
sub eax, ebx
push eax
lea eax, [ebx + ebp]
push 0
push eax
call fcn.004c20c0
mov eax, dword [ebp + 4]
add esp, 0x18
mov ecx, dword [esp + 0x54]
and eax, 0xfffe1fff
mov dword [ebp + 4], eax
test ecx, ecx
je 0x42d3b2
lea eax, [ebp + 0x2c]
push ecx
mov dword [ebp + 8], eax
push dword [esi + 8]
push eax
call fcn.004c15c0
mov eax, dword [ebp + 4]
add esp, 0xc
mov ecx, dword [esi + 4]
or eax, ecx
test eax, 0x4000
jne 0x42d3e2
mov eax, dword [esi + 0x14]
push 0
push eax
push dword [esp + 0x24]
test ecx, 0x800
je 0x42d3d7
call fcn.0046e8b0
jmp 0x42d3dc
call fcn.00457b00
mov dword [ebp + 0x14], eax
add esp, 0xc
mov ebx, dword [ebp + 4]
test ebx, 0x6000
je 0x42d439
push 0
push esi
call fcn.0042bea0
add ebp, eax
add esp, 8
mov dword [esp + 0x54], ebp
test ebx, 0x2000
je 0x42d465
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x54]
push eax
push 1
push dword [esi + 0xc]
push ebp
call fcn.0042ef70
mov ebx, dword [esp + 0x34]
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x64]
push eax
push 1
push dword [esi + 0x10]
push ebp
call fcn.0042ef70
add esp, 0x20
mov dword [ebx + 0x10], eax
jmp 0x42d465
test dword [esi + 4], 0x4000
jne 0x42d465
mov ebx, dword [esp + 0x1c]
push 0
push dword [esi + 0xc]
push ebx
call fcn.00456da0
push 0
mov dword [ebp + 0xc], eax
push dword [esi + 0x10]
push ebx
call fcn.00456da0
add esp, 0x18
mov dword [ebp + 0x10], eax
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x42d4c0
mov eax, dword [ebx]
cmp byte [eax + 0x41], 0
jne 0x42d4c0
mov eax, 0x400
or word [edi + 0x14], ax
xor edi, edi
mov ebx, dword [esi + 8]
mov cl, byte [ebx]
test cl, cl
je 0x42d4c0
mov ebp, dword [esp + 0x24]
movzx edx, cl
movzx eax, byte [edx + 0x4eba38]
and al, 0x20
not al
and al, cl
mov byte [ebx], al
mov ecx, dword [ebp + 8]
movzx eax, byte [edx + 0x4eb938]
mov byte [edi + ecx], al
inc edi
mov ebx, dword [esi + 8]
add ebx, edi
mov cl, byte [ebx]
test cl, cl
jne 0x42d491
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
cmp byte [edx + 0x41], 0
jne 0x42d515
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
mov eax, ecx
test ecx, ecx
je 0x42d4ed
cmp byte [ecx], 0
je 0x42d4e6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x42d4e0
sub eax, ecx
and eax, 0x3fffffff
mov edi, dword [esp + 0x28]
add ecx, eax
mov al, byte [ecx - 1]
test ebp, ebp
je 0x42d50a
xor ebx, ebx
cmp al, 0x40
movzx eax, al
cmove edi, ebx
mov al, byte [eax + 0x4eb938]
inc al
mov dword [esp + 0x30], edi
mov byte [ecx - 1], al
jmp 0x42d51d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
push 0
push 0
push dword [esp + 0x58]
mov eax, str.BINARY
test ebp, ebp
mov ebx, str.NOCASE
cmove ebx, eax
push edx
mov dword [esp + 0x68], ebx
call fcn.0042ef70
push ebx
push eax
push dword [esp + 0x2c]
call fcn.00453cc0
mov ebp, eax
add esp, 0x1c
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
test ebx, ebx
je 0x42d582
cmp byte [ebx + 0x41], 0
je 0x42d565
xor edi, edi
jmp 0x42d64a
cmp byte [ebx + 0xfa], 0
je 0x42d582
mov eax, 0x2c
cmp ax, word [ebx + 0xf8]
jbe 0x42d5e6
inc dword [ebx + 0x108]
push 0
push 0x2c
call fcn.00461dd0
mov edi, eax
add esp, 8
test edi, edi
jne 0x42d59c
test ebx, ebx
je 0x42d59c
mov byte [ebx + 0x41], 1
mov ebx, edi
test edi, edi
je 0x42d644
push 0x2c
push 0
push edi
call fcn.004c20c0
or eax, 0xffffffff
mov byte [edi], 0x53
add esp, 0xc
mov word [edi + 0x1e], ax
test esi, esi
je 0x42d5cf
mov dword [edi + 0x10], esi
mov eax, dword [esi + 4]
and eax, 0x200100
or dword [edi + 4], eax
test ebp, ebp
je 0x42d625
mov dword [edi + 0xc], ebp
mov eax, dword [ebp + 4]
and eax, 0x200100
or dword [edi + 4], eax
mov ecx, dword [edi + 4]
jmp 0x42d628
mov edi, dword [ebx + 0x110]
test edi, edi
jne 0x42d5f8
inc dword [ebx + 0x10c]
jmp 0x42d582
mov eax, dword [edi]
mov dword [ebx + 0x110], eax
mov eax, dword [ebx + 0xfc]
inc eax
mov dword [ebx + 0xfc], eax
inc dword [ebx + 0x104]
cmp eax, dword [ebx + 0x100]
jle 0x42d621
mov dword [ebx + 0x100], eax
mov ebx, edi
jmp 0x42d5a6
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
and eax, 1
or eax, ecx
mov dword [edi + 4], eax
mov ax, word [edx + 0x20]
mov word [edi + 0x20], ax
jmp 0x42d756
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
push ebp
push ebx
call fcn.00456d20
add esp, 8
test esi, esi
je 0x42d756
test dword [esi + 4], 0x4000
jne 0x42d6b5
push dword [esi + 0xc]
push ebx
call fcn.00456d20
push dword [esi + 0x10]
push ebx
call fcn.00456d20
mov eax, dword [esi + 4]
add esp, 0x10
test eax, 0x10000
je 0x42d693
push dword [esi + 8]
push ebx
call fcn.004514c0
mov eax, dword [esi + 4]
add esp, 8
mov ecx, dword [esi + 0x14]
test eax, 0x800
je 0x42d6ab
push 1
push ecx
push ebx
call fcn.00425570
add esp, 0xc
jmp 0x42d6b5
push ecx
push ebx
call fcn.00457830
add esp, 8
test dword [esi + 4], 0x8000
jne 0x42d756
test ebx, ebx
je 0x42d701
cmp dword [ebx + 0x208], 0
je 0x42d6db
push esi
push ebx
call fcn.00438520
add esp, 8
jmp 0x42d756
cmp esi, dword [ebx + 0x114]
jb 0x42d701
cmp esi, dword [ebx + 0x118]
jae 0x42d701
mov eax, dword [ebx + 0x110]
mov dword [esi], eax
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], esi
jmp 0x42d756
cmp dword [section..data], 0
je 0x42d74c
mov eax, dword [0x50cf50]
test eax, eax
je 0x42d71d
push eax
call dword [0x50a054]
add esp, 4
push esi
call dword [0x50a030]
sub dword [0x50cdd0], eax
dec dword [0x50cdf4]
push esi
call dword [0x50a028]
mov eax, dword [0x50cf50]
add esp, 8
test eax, eax
je 0x42d756
push eax
call dword [0x50a05c]
jmp 0x42d753
push esi
call dword [0x50a028]
add esp, 4
push 0x103
push edi
mov edi, dword [esp + 0x70]
push edi
call fcn.0048d8f0
mov ebp, eax
push ebp
push edi
push dword [esp + 0x78]
call fcn.0042cd70
push 0
push 0
push dword [esp + 0x70]
push dword [esp + 0x40]
call fcn.0042ef70
push dword [esp + 0x80]
push eax
push dword [esp + 0x44]
call fcn.00453cc0
mov ebx, eax
add esp, 0x34
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
test edi, edi
je 0x42d7ce
cmp byte [edi + 0x41], 0
je 0x42d7b1
xor esi, esi
jmp 0x42d89a
cmp byte [edi + 0xfa], 0
je 0x42d7ce
mov eax, 0x2c
cmp ax, word [edi + 0xf8]
jbe 0x42d836
inc dword [edi + 0x108]
push 0
push 0x2c
call fcn.00461dd0
mov esi, eax
add esp, 8
test esi, esi
jne 0x42d7e8
test edi, edi
je 0x42d7e8
mov byte [edi + 0x41], 1
mov edi, esi
test esi, esi
je 0x42d894
push 0x2c
push 0
push esi
call fcn.004c20c0
or eax, 0xffffffff
mov byte [esi], 0x52
mov word [esi + 0x1e], ax
add esp, 0xc
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42d81f
mov dword [esi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x200100
or dword [esi + 4], eax
test ebx, ebx
je 0x42d878
mov dword [esi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x200100
or dword [esi + 4], eax
mov ecx, dword [esi + 4]
jmp 0x42d87b
mov esi, dword [edi + 0x110]
test esi, esi
jne 0x42d848
inc dword [edi + 0x10c]
jmp 0x42d7ce
mov eax, dword [esi]
mov dword [edi + 0x110], eax
mov eax, dword [edi + 0xfc]
inc eax
mov dword [edi + 0xfc], eax
inc dword [edi + 0x104]
cmp eax, dword [edi + 0x100]
jle 0x42d871
mov dword [edi + 0x100], eax
mov edi, esi
jmp 0x42d7f2
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
and eax, 1
or eax, ecx
mov dword [esi + 4], eax
mov ax, word [edx + 0x20]
mov word [esi + 0x20], ax
jmp 0x42d8ae
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
push ebx
push edi
call fcn.00456d20
push dword [esp + 0x2c]
push edi
call fcn.00456d20
add esp, 0x10
mov ebx, dword [esp + 0x68]
push 0x103
push esi
push ebx
call fcn.0048d8f0
mov esi, eax
push esi
push ebx
push dword [esp + 0x78]
call fcn.0042cd70
mov edi, dword [esp + 0x38]
add esp, 0x18
mov eax, dword [ebx + 0x14]
add edi, eax
cmp dword [esp + 0x30], 0
je 0x42d92d
mov ecx, dword [esp + 0x6c]
lea edx, [ebp*2]
add edx, ebp
mov ebp, dword [esp + 0x20]
add edx, edx
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [ebx + 0x14]
movzx eax, word [ecx + ebp + 0x10]
mov word [ecx + edx*8 + 0x10], ax
lea edx, [esi + esi*2]
mov eax, dword [ebx + 0x14]
add edx, edx
mov ecx, dword [esp + 0x6c]
inc byte [eax + ebp + 0x16]
mov eax, dword [ebx + 0x14]
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [ebx + 0x14]
movzx eax, word [ecx + ebp + 0x10]
mov word [ecx + edx*8 + 0x10], ax
mov eax, dword [ebx + 0x14]
inc byte [eax + ebp + 0x16]
mov ebp, dword [esp + 0x18]
cmp byte [ebp], 0x99
jne 0x42da99
mov esi, dword [ebp + 8]
test esi, esi
je 0x42da99
mov bl, byte [esi]
mov edx, str.match
test bl, bl
je 0x42d976
mov al, bl
sub esi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x4eb938]
cmp al, byte [ecx + 0x4eb938]
jne 0x42d976
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x42d955
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x4eb938]
movzx eax, bl
movzx eax, byte [eax + 0x4eb938]
sub eax, ecx
jne 0x42da99
mov eax, dword [ebp + 0x14]
cmp dword [eax], 2
jne 0x42da99
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x18]
cmp byte [ebx], 0x9a
jne 0x42da99
mov esi, dword [eax]
push esi
push dword [esp + 0x38]
call fcn.0042f5b0
push ebx
push dword [esp + 0x40]
mov ebp, eax
mov dword [esp + 0x64], edx
call fcn.0042f5b0
and edx, dword [esp + 0x64]
and eax, ebp
add esp, 0x10
or eax, edx
jne 0x42da99
push eax
push eax
push esi
push dword [esp + 0x28]
call fcn.0042ef70
push 1
mov edi, eax
mov eax, dword [esp + 0x28]
push 0
push 0x33
push dword [eax]
call fcn.00453e30
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x42da13
mov eax, dword [esp + 0x14]
push edi
push dword [eax]
call fcn.00456d20
add esp, 8
jmp 0x42da25
test edi, edi
je 0x42da25
mov dword [esi + 0x10], edi
mov eax, dword [edi + 4]
and eax, 0x200100
or dword [esi + 4], eax
mov edi, dword [esp + 0x68]
push 3
push esi
push edi
call fcn.0048d8f0
mov esi, dword [edi + 0x14]
add esp, 0xc
mov ecx, dword [esp + 0x6c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x54]
shl edx, 4
add esi, edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ebp
mov eax, dword [ebx + 0x18]
mov dword [esi + 8], eax
movsx eax, word [ebx + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esi + 0xc], eax
mov eax, 0x40
mov word [esi + 0x12], ax
mov eax, dword [edi + 0x14]
mov dword [eax + edx + 4], ecx
mov ecx, dword [edi + 0x14]
mov ax, word [ebx + ecx + 0x10]
mov word [edx + ecx + 0x10], ax
mov eax, dword [edi + 0x14]
inc byte [ebx + eax + 0x16]
mov edi, dword [edi + 0x14]
add edi, ebx
mov eax, dword [edi + 0x28]
or word [edi + 0x14], 8
mov dword [esi + 0x28], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x38]
or dword [edi + 0x20], eax
mov eax, dword [esp + 0x40]
or dword [edi + 0x24], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret